package com.caiju.health.controller;


import com.caiju.health.constant.MessageConstant;
import com.caiju.health.entity.PageResult;
import com.caiju.health.entity.Result;
import com.caiju.health.pojo.CheckGroup;
import com.caiju.health.pojo.CheckItem;
import com.caiju.health.pojo.Setmeal;
import com.caiju.health.service.ICheackGroupService;
import com.caiju.health.service.ISetMealService;
import com.caiju.health.vo.QueryPageBean;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController
@RequestMapping("/setmeal")
@CrossOrigin    //允许跨域，因为不同端口号，认为不是同一个人
public class SetmealController {
    @Resource
    private ISetMealService setMealService;

    @GetMapping("/findSetmealByCondition")
    public PageResult findSetMealByCondition(QueryPageBean queryPageBean){
        //从queryPageBean获取查询的条件
        //currentPage  页码
        Integer currentPage = queryPageBean.getCurrentPage();
        //pageSize 每页显示的条数
        Integer pageSize = queryPageBean.getPageSize();
        //queryString 表示查询的条件
        //根据项目的原型我们发现将来进行搜索的时候是根据项目的编码以及项目名称进行搜索
        String queryString = queryPageBean.getQueryString();
        PageResult pageResult = setMealService.findSetMealByCondition(currentPage,pageSize,queryString);
        return pageResult;
    }

//        删除套餐数据
    @PostMapping("/deleteSetmeal/{id}")
    public Result deleteSetMeal(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        setMealService.deleteSetmeal(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.DELETE_SETMEAL_SUCCESS);
    }

    //    新增检查组数据 ，， 会包含有检查组以及检查项数据
    @PostMapping("/addSetmeal/{checkGroupIds}")
    public Result addCheckGroup(@RequestBody Setmeal setmeal,
                                @PathVariable("checkGroupIds")Integer[] checkGroupIds){
//        System.out.println("========="+checkGroup);
        setmeal.setStatus(1);
        setMealService.addSetmeal(setmeal,checkGroupIds);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
    }

    //   添加检查组  数据回显
    @GetMapping ("/findSetmealById/{id}")
    public Result findSetmealById(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        Setmeal setmeal = setMealService.findSetmealById(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,setmeal);
    }


    //   检查组ids 数据回显
    @GetMapping ("/findCheckGroupIdsById/{id}")
    public Result findCheckGroupIdsById(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        Integer[] checkGroupIds = setMealService.findCheckGroupIdsById(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,checkGroupIds);
    }


    //    修改检查项数据
    @PostMapping("/updateSetmeal")
    public Result updateSetmeal(@RequestBody Setmeal setmeal){
//        System.out.println("========="+checkGroup);
        setMealService.updateSetmeal(setmeal);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.EDIT_CHECKGROUP_SUCCESS);
    }


    //    删除 套餐ids by id
    @PostMapping("/deleteSetmealIdsById/{id}")
    public Result deleteSetmealIdsById(@PathVariable("id")Integer id){
        System.out.println("========="+id);
        setMealService.deleteSetmealIdsById(id);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.DELETE_CHECKGROUP_SUCCESS);
    }

    //    添加 套餐->检查组ids by id
    @PostMapping("/addSetmeal_CheckGroupbyId/{checkGroupIds}/{id}")
    public Result addSetmeal_CheckGroupbyId(@PathVariable("id")Integer id,
                                    @PathVariable("checkGroupIds")Integer[] checkGroupIds){
        setMealService.addSetmeal_CheckGroupbyId(id,checkGroupIds);
        //表示需要返回一个Result对象，给前端做响应
        return  new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
    }

}
